Modernly, power management support is available in current PC (Personal Computer) notebooks and desktops conformant with ACPI (Advanced Configuration Power Interface) techniques which are well known in the art. ACPI based implementations are a form of OSPM (Operating System Power Management or sometimes Operating System Power Management Policy).
OSPM uses ACPI services which are based on BIOS (Basic Input-Output System) control. Some (typically older) ACPI services are linked to Fixed HW (hardware) registers in I/O (input-output) address space—as contrasted with MM (memory mapped) address space. FFH (functional fixed hardware) is a combination of hardware with software and firmware that, taken together, provides a number of services in conformance with the ACPI specification. Taken together, FFH and the older Fixed HW registers are termed ACPI FHF (Fixed Hardware Feature(s)). It is significant that, per the ACPI specification, ACPI FHF provides not just a specified access mechanism but also specified power management services. Though the power management features are necessarily realized in various ways on various hardware platforms, nonetheless ACPI FHF provides a core set of power management services, features and methods through a level of abstraction.
The fixed hardware programming model requires hardware registers to be defined at particular address locations, and in contrast—the generic hardware programming model inherent in the use of FFH to provide services allows hardware registers (called Generic Registers) to reside in almost any address selected from within most address spaces and provides system OEMs (Original Equipment Manufacturers) with a wide degree of flexibility in the implementation of specific functions embodied in hardware. If necessary, OSPM may direct accesses to the fixed hardware registers, but OSPM relies on OEM-provided ACPI Machine Language (AML) code to access generic hardware registers. It is well known in the art how to produce AML codes from ASL (ACPI Source Language) including descriptions of hardware configurations and more.
Generic Registers and their usage are documented in the ACPI specification. Thus, ACPI FHF provides a standardized means of providing Power Management services for use by OSPM.
However, broadly speaking, the ACPI OSPM does not take account of, nor provide for virtualized OS (operating systems), two or more of which may coexist in a hypervisor environment. Support for rich OS features in multiple VMs (Virtual Machines) is limited. This situation provides an implementation challenge (and opportunity) for hypervisors since the underlying assumption made by a typical single OS that it may safely and properly take overarching control of the hardware resources (especially as related to power management) is thereby invalidated.
Moreover, it will never be entirely satisfactory for the power and energy environment of the underlying platform to be virtualized to each OS (operating system) nor for each OS to be allowed mere pass-through access to hardware. In the former case OS efforts at power and energy management may be wasted and in the latter case the two operating systems can be expected to interfere one with the other. For example it would clearly be at least wasteful if not error inducing for a first OS to spin down a disk drive in order to save power while it is in actual use by a second OS for reading and/or writing data.
A need exists for an implementation approach that provides each of transient, pass-through and emulated facilities for power management and which incorporates and uses any and all of these according to need.